using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;

using CNCSoft.EWinform;
using CNCSoft.EWinform.ControlUtils;
//using CNCSoft.EWinform.ERPApps;
using CNCSoft.EWinform.AGrid;
using CNCSoft.EData;

using Common;

namespace CNCSoft.ErpApps.TMS {

	/// <summary>
	/// Summary description for TienMatPhieuThuData.
	/// </summary>
	public class frmNhapHoSoXetTuyenData: TMSDataBase  {

        public enum TL
        {
            TUYENSINH,
            TUYENSINH_CHITIET,
            TUYENSINH_HOSOTUYENSINH,
            GioiTinh,
            PhuongXa,
            QuanHuyen,
            TinhTP,
            Khoi,
            CheDo, 
            CoSo,
            QuanHe,
            HinhThucXetTuyen,
            Truong,
            HocLuc,
            HanhKiem,
            ListUser,
            NhanVien,  //Giao vien
            NhanVienVanPhong,
            HOSOTUYENSINH
        }

        private string sqlTUYENSINH =
            "SELECT [MaTuyenSinh],[NgayNopHoSo],[HoLot],[Ten], [GioiTinh], [NgaySinh], [DiaChi], [MaPhuongXa], [MaQuanHuyen], [MaTinhTP], [MaKhoiDangKy], [MaCheDo], [MaCoSo], [MaNienHoc], [HoTenPhuHuynh], [QuanHe], [SoDienThoai], [NhanVienTiepNhan], [UpdateDate], [NhanVienNhanHoSo] " +
            "FROM [TUYENSINH]";

        private string sqlTUYENSINH_CHITIET =
            "SELECT [ID],[MaTuyenSinh],[MaHinhThucXetTuyen],[NoiDung],[MaTruong],[DiemToan],[DiemLy],[DiemHoa],[DiemVan],[DiemAnh],[DiemSinh],[MaHocLuc],[MaHanhKiem], [DungDeXepLop]  " +
            "FROM [TUYENSINH_CHITIET]";

        private string sqlTUYENSINH_HOSOTUYENSINH =
            @"SELECT [ID], [MaTuyenSinh], [MaHoSoTuyenSinh] FROM [TUYENSINH_HOSOTUYENSINH]";

        public frmNhapHoSoXetTuyenData()
        {

            ds.Tables.Add("TUYENSINH");
            ds.Tables.Add("TUYENSINH_CHITIET");
            ds.Tables.Add("TUYENSINH_HOSOTUYENSINH");
            ds.Tables.Add("GioiTinh");
            ds.Tables.Add("PhuongXa");
            ds.Tables.Add("QuanHuyen");
            ds.Tables.Add("TinhTP");
            ds.Tables.Add("Khoi");
            ds.Tables.Add("CheDo");
            ds.Tables.Add("CoSo");
            ds.Tables.Add("QuanHe");
            ds.Tables.Add("HinhThucXetTuyen");
            ds.Tables.Add("Truong");
            ds.Tables.Add("HocLuc");
            ds.Tables.Add("HanhKiem");
            ds.Tables.Add("ListUser");
            ds.Tables.Add("NhanVien");
            ds.Tables.Add("NhanVienVanPhong");
            ds.Tables.Add("HOSOTUYENSINH");

            DanhMuc.fill(getTable(TL.GioiTinh), DanhMuc.TLDM.GioiTinh);
            DanhMuc.fill(getTable(TL.PhuongXa), DanhMuc.TLDM.PhuongXa);
            DanhMuc.fill(getTable(TL.QuanHuyen), DanhMuc.TLDM.Quan);
            DanhMuc.fill(getTable(TL.TinhTP), DanhMuc.TLDM.ThanhPho);
            DanhMuc.fill(getTable(TL.Khoi), DanhMuc.TLDM.Khoi);
            DanhMuc.fill(getTable(TL.CheDo), DanhMuc.TLDM.CheDo);
            DanhMuc.fill(getTable(TL.CoSo), DanhMuc.TLDM.CoSo);
            DanhMuc.fill(getTable(TL.QuanHe), DanhMuc.TLDM.QuanHe);
            DanhMuc.fill(getTable(TL.HinhThucXetTuyen), DanhMuc.TLDM.HinhThucXetTuyen);
            DanhMuc.fill(getTable(TL.Truong), DanhMuc.TLDM.Truong);
            DanhMuc.fill(getTable(TL.HocLuc), DanhMuc.TLDM.HocLuc);
            DanhMuc.fill(getTable(TL.HanhKiem), DanhMuc.TLDM.HanhKiem);
            DanhMuc.fill(getTable(TL.ListUser), DanhMuc.TLDM.ListUser);
            DanhMuc.fill(getTable(TL.NhanVien), DanhMuc.TLDM.GiaoVien);
            DanhMuc.fill(getTable(TL.NhanVienVanPhong), DanhMuc.TLDM.NhanVienVanPhong);
            DanhMuc.fill(getTable(TL.HOSOTUYENSINH), DanhMuc.TLDM.HoSoTuyenSinh);
          
			initData("('')", true);
		}

        public void initData(string strMaTuyenSinh, bool firstLoading)
        {
			if (!firstLoading) {
                getTable(TL.TUYENSINH_CHITIET).Clear();
                getTable(TL.TUYENSINH_HOSOTUYENSINH).Clear();
                getTable(TL.TUYENSINH).Clear();
			}
            SQLHelper.Fill(getTable(TL.TUYENSINH), GlobalVariable.WSInfo.ConnectionString,
                sqlTUYENSINH + " WHERE [MaTuyenSinh] In " + strMaTuyenSinh);

            SQLHelper.Fill(getTable(TL.TUYENSINH_CHITIET), GlobalVariable.WSInfo.ConnectionString,
                sqlTUYENSINH_CHITIET + " WHERE [MaTuyenSinh] In " + strMaTuyenSinh);

            SQLHelper.Fill(getTable(TL.TUYENSINH_HOSOTUYENSINH), GlobalVariable.WSInfo.ConnectionString,
                sqlTUYENSINH_HOSOTUYENSINH + "WHERE [MaTuyenSinh] IN " + strMaTuyenSinh);

			if (firstLoading) {
				// Set primary key(s)
                getTable(TL.TUYENSINH).PrimaryKey = new DataColumn[] { getTable(TL.TUYENSINH).Columns["MaTuyenSinh"] };
                getTable(TL.TUYENSINH_CHITIET).PrimaryKey = new DataColumn[] { getTable(TL.TUYENSINH_CHITIET).Columns["ID"] };
                getTable(TL.TUYENSINH_HOSOTUYENSINH).PrimaryKey = new DataColumn[] { getTable(TL.TUYENSINH_HOSOTUYENSINH).Columns["ID"] };

				// Set relations
                ds.Relations.Add("M_D", getTable(TL.TUYENSINH).Columns["MaTuyenSinh"],
                    getTable(TL.TUYENSINH_CHITIET).Columns["MaTuyenSinh"]);
                ds.Relations.Add("M_H", getTable(TL.TUYENSINH).Columns["MaTuyenSinh"],
                    getTable(TL.TUYENSINH_HOSOTUYENSINH).Columns["MaTuyenSinh"]);

                // Set default values
                getTable(TL.TUYENSINH).Columns["MaTuyenSinh"].DefaultValue = "";
                getTable(TL.TUYENSINH).Columns["NgayNopHoSo"].DefaultValue = GlobalVariable.WSInfo.WorkingDate;
                getTable(TL.TUYENSINH).Columns["NhanVienTiepNhan"].DefaultValue = GlobalVariable.WSInfo.UserID;
                getTable(TL.TUYENSINH).Columns["UpdateDate"].DefaultValue = GlobalVariable.WSInfo.WorkingDate;
                getTable(TL.TUYENSINH).Columns["MaNienHoc"].DefaultValue = GlobalVariable.WSInfo.getAppProperty("MaNienHocMoi");
                //Detail
                getTable(TL.TUYENSINH_CHITIET).Columns["ID"].AutoIncrement = true;
                getTable(TL.TUYENSINH_CHITIET).Columns["ID"].AutoIncrementStep = 1;
                getTable(TL.TUYENSINH_CHITIET).Columns["NoiDung"].DefaultValue = "";
                //Hoso Tuyensinh
                getTable(TL.TUYENSINH_HOSOTUYENSINH).Columns["ID"].AutoIncrement = true;
                getTable(TL.TUYENSINH_HOSOTUYENSINH).Columns["ID"].AutoIncrementStep = 1;
			}
           
		}

		public bool createNewRow() {
			try {
                initData("('')", false);

                DataRow dr = getTable(TL.TUYENSINH).NewRow();
                vg.DateForGenerating = WSInfo.WorkingDate;   //Generate theo ngay dang nhap
                vg.Prefix = "TS";
                vg.VoucherNoFormatDesign = VoucherNoGenerator.VoucherNoFormat.Prefix_YY_MM_Delimiter_SerialNo;
                dr["MaTuyenSinh"] = vg.generateVoucherNo("TUYENSINH", "MaTuyenSinh");
                getTable(TL.TUYENSINH).Rows.Add(dr);

				return true;
			}
			catch {
				MessageBox.Show(RS.ERROR_CREATE_NEW_ROW, RS.ERROR_CREATE_NEW_ROW_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
			return false;
		}

		public bool update() {
			try {
                new SimpleMasterDetailUpdater1(sqlTUYENSINH, sqlTUYENSINH_CHITIET, sqlTUYENSINH_HOSOTUYENSINH,
                                                getTable(TL.TUYENSINH), getTable(TL.TUYENSINH_CHITIET), getTable(TL.TUYENSINH_HOSOTUYENSINH), GlobalVariable.WSInfo.ConnectionString);
                ds.AcceptChanges();
				return true;
			} catch (Exception ex) {
				MessageBox.Show(RS.ERROR_UPDATE +"\n" +ex.Message, RS.ERROR_UPDATE_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
			return false;
		}

		public DataTable getTable(TL index) {
			return ds.Tables[(int)index];
		}

	}
}
